from django.views import View

# 导入解析用户信息函数
# 获取数据库连接
from SaaSDevelTool.data_mysql_data import db
# 导入返回响应
from SaaSDevelTool.data_return_response import create_response
# 导入错误信息装饰器
from SaaSDevelTool.data_return_response import error_message_detection
# 导入创建功能包操作
from SaaSDevelTool.SaaSCenterOperateFunc import  update_resource_name

"""总页面修改"""


class SaaSDataSumResourceUpdate(View):
    @error_message_detection
    def post(self, request):
        # 获取页面编号
        resource_id = request.POST.get("resource_id")
        # 获取页面名称
        resource_name = request.POST.get("resource_name")
        # 获取页面注释
        resource_remark = request.POST.get("resource_remark")
        # 获取页面地址
        resource_urls = request.POST.get("resource_urls")
        # 输入页面图标
        resource_images = request.POST.get("resource_images")
        # 判断必传的参数
        if not all([resource_name, resource_images, resource_urls]):
            return create_response(
                code=400,
                msg="页面修改失败，参数页面名称，页面图标，页面地址，页面编号为必传参数。")

        # 判断页面名称长度
        if len(resource_name) > 30 or len(resource_name) < 2:
            return create_response(code=400, msg="页面修改失败，页面名称最大不能超过30字,最小不能小于2个字。")

        # 判断页面地址长度
        if len(resource_urls) > 50 or len(resource_urls) < 5:
            return create_response(
                code=400,
                msg="页面修改失败，页面地址最大不能超过50字,最小不能小于5个字。")

        # 创建对应的功能包页面
        update_sum_page_resource_table_sql = """
            UPDATE 
                db_saas_center.sum_page_resource_table
            SET 
                resource_name = '{}', 
                resource_remark = '{}', 
                resource_urls = '{}', 
                resource_images = '{}' 
            WHERE 
                resource_id = {};
            
            ;""".format(resource_name, resource_remark, resource_urls, resource_images, resource_id)
        # 调用方法执行语句
        db.update(update_sum_page_resource_table_sql)

        # 循环对应的数据,修改名称
        update_resource_name(resource_id, resource_name)
        # 返回对应的数据
        return create_response(code=200, msg="页面修改成功。")
